[INFO] fetching crate gix-hash 0.25.1...
[INFO] fixing gix-hash-0.25.1 against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=start=2015 for pr-157817-2
[INFO] extracting crate gix-hash 0.25.1 into /workspace/builds/worker-4-tc1/source
[INFO] started tweaking crates.io crate gix-hash 0.25.1
[INFO] finished tweaking crates.io crate gix-hash 0.25.1
[INFO] tweaked toml for crates.io crate gix-hash 0.25.1 written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate gix-hash 0.25.1 on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate gix-hash 0.25.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded digest v0.11.2
[INFO] [stderr]   Downloaded hybrid-array v0.4.11
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 1e364c1e9b6b3f97e43dd99be70e64621674169a78fea2984ddad3c1e944e5e2
[INFO] running `Command { std: "docker" "start" "1e364c1e9b6b3f97e43dd99be70e64621674169a78fea2984ddad3c1e944e5e2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1e364c1e9b6b3f97e43dd99be70e64621674169a78fea2984ddad3c1e944e5e2" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "1e364c1e9b6b3f97e43dd99be70e64621674169a78fea2984ddad3c1e944e5e2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "1e364c1e9b6b3f97e43dd99be70e64621674169a78fea2984ddad3c1e944e5e2" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=start=2015", kill_on_drop: false }`
[INFO] [stderr]    Compiling heapless v0.8.0
[INFO] [stderr]     Checking gix-trace v0.1.20
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking prodash v31.0.0
[INFO] [stderr]     Checking faster-hex v0.10.0
[INFO] [stderr]     Checking gix-features v0.48.1
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]     Checking thiserror v2.0.18
[INFO] [stderr]     Checking gix-hash v0.25.1 (/opt/rustwide/workdir)
[INFO] [stdout] error: Please set either the `sha1` or the `sha256` feature flag
[INFO] [stdout]   --> src/lib.rs:32:1
[INFO] [stdout]    |
[INFO] [stdout] 32 | compile_error!("Please set either the `sha1` or the `sha256` feature flag");
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0665]: `#[derive(Default)]` on enum with no `#[default]`
[INFO] [stdout]    --> src/lib.rs:93:10
[INFO] [stdout]     |
[INFO] [stdout]  93 |   #[derive(Default, PartialEq, Eq, Debug, Hash, Ord, PartialOrd, Clone, Copy)]
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 | / pub enum Kind {
[INFO] [stdout]  97 | |     /// The SHA1 hash with 160 bits.
[INFO] [stdout]  98 | |     #[cfg_attr(feature = "sha1", default)]
[INFO] [stdout]  99 | |     #[cfg(feature = "sha1")]
[INFO] [stdout] ...   |
[INFO] [stdout] 104 | |     Sha256 = 2,
[INFO] [stdout] 105 | | }
[INFO] [stdout]     | |_- this enum needs a unit variant marked with `#[default]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: Please set either the `sha1` or the `sha256` feature flag
[INFO] [stdout]   --> src/lib.rs:32:1
[INFO] [stdout]    |
[INFO] [stdout] 32 | compile_error!("Please set either the `sha1` or the `sha256` feature flag");
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0665]: `#[derive(Default)]` on enum with no `#[default]`
[INFO] [stdout]    --> src/lib.rs:93:10
[INFO] [stdout]     |
[INFO] [stdout]  93 |   #[derive(Default, PartialEq, Eq, Debug, Hash, Ord, PartialOrd, Clone, Copy)]
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 | / pub enum Kind {
[INFO] [stdout]  97 | |     /// The SHA1 hash with 160 bits.
[INFO] [stdout]  98 | |     #[cfg_attr(feature = "sha1", default)]
[INFO] [stdout]  99 | |     #[cfg(feature = "sha1")]
[INFO] [stdout] ...   |
[INFO] [stdout] 104 | |     Sha256 = 2,
[INFO] [stdout] 105 | | }
[INFO] [stdout]     | |_- this enum needs a unit variant marked with `#[default]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/kind.rs:66:31
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub const fn longest() -> Self {
[INFO] [stdout]    |                  -------      ^^^^ expected `Kind`, found `()`
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  implicitly returns `()` as its body has no tail or `return` expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/oid.rs:64:13
[INFO] [stdout]    |
[INFO] [stdout] 64 | /             match self.kind() {
[INFO] [stdout] 65 | |                 #[cfg(feature = "sha1")]
[INFO] [stdout] 66 | |                 Kind::Sha1 => "Sha1",
[INFO] [stdout] 67 | |                 #[cfg(feature = "sha256")]
[INFO] [stdout] 68 | |                 Kind::Sha256 => "Sha256",
[INFO] [stdout] 69 | |             },
[INFO] [stdout]    | |             ^
[INFO] [stdout]    | |             |
[INFO] [stdout]    | |_____________unreachable expression
[INFO] [stdout]    |               any code following this expression is unreachable
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/object_id.rs:281:9
[INFO] [stdout]     |
[INFO] [stdout] 275 | /         match self {
[INFO] [stdout] 276 | |             #[cfg(feature = "sha1")]
[INFO] [stdout] 277 | |             ObjectId::Sha1(_hash) => f.write_str("Sha1(")?,
[INFO] [stdout] 278 | |             #[cfg(feature = "sha256")]
[INFO] [stdout] 279 | |             ObjectId::Sha256(_) => f.write_str("Sha256(")?,
[INFO] [stdout] 280 | |         }
[INFO] [stdout]     | |_________- any code following this expression is unreachable
[INFO] [stdout] 281 | /         for b in self.as_bytes() {
[INFO] [stdout] 282 | |             write!(f, "{b:02x}")?;
[INFO] [stdout] 283 | |         }
[INFO] [stdout]     | |_________^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/kind.rs:66:31
[INFO] [stdout]    |
[INFO] [stdout] 66 |     pub const fn longest() -> Self {
[INFO] [stdout]    |                  -------      ^^^^ expected `Kind`, found `()`
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  implicitly returns `()` as its body has no tail or `return` expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/oid.rs:64:13
[INFO] [stdout]    |
[INFO] [stdout] 64 | /             match self.kind() {
[INFO] [stdout] 65 | |                 #[cfg(feature = "sha1")]
[INFO] [stdout] 66 | |                 Kind::Sha1 => "Sha1",
[INFO] [stdout] 67 | |                 #[cfg(feature = "sha256")]
[INFO] [stdout] 68 | |                 Kind::Sha256 => "Sha256",
[INFO] [stdout] 69 | |             },
[INFO] [stdout]    | |             ^
[INFO] [stdout]    | |             |
[INFO] [stdout]    | |_____________unreachable expression
[INFO] [stdout]    |               any code following this expression is unreachable
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable call
[INFO] [stdout]   --> src/kind.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |           Ok(match value {
[INFO] [stdout]    |  _________^^_-
[INFO] [stdout]    | |         |
[INFO] [stdout]    | |         unreachable call
[INFO] [stdout] 16 | |             #[cfg(feature = "sha1")]
[INFO] [stdout] 17 | |             1 => Kind::Sha1,
[INFO] [stdout] 18 | |             #[cfg(feature = "sha256")]
[INFO] [stdout] 19 | |             2 => Kind::Sha256,
[INFO] [stdout] 20 | |             unknown => return Err(unknown),
[INFO] [stdout] 21 | |         })
[INFO] [stdout]    | |_________- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable call
[INFO] [stdout]   --> src/kind.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |           Ok(match s {
[INFO] [stdout]    |  _________^^_-
[INFO] [stdout]    | |         |
[INFO] [stdout]    | |         unreachable call
[INFO] [stdout] 30 | |             #[cfg(feature = "sha1")]
[INFO] [stdout] 31 | |             "sha1" | "SHA1" | "SHA-1" => Kind::Sha1,
[INFO] [stdout] 32 | |             #[cfg(feature = "sha256")]
[INFO] [stdout] 33 | |             "sha256" | "SHA256" | "SHA-256" => Kind::Sha256,
[INFO] [stdout] 34 | |             other => return Err(other.into()),
[INFO] [stdout] 35 | |         })
[INFO] [stdout]    | |_________- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/kind.rs:53:32
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub const fn shortest() -> Self {
[INFO] [stdout]    |                  --------      ^^^^ expected `Kind`, found `()`
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  implicitly returns `()` as its body has no tail or `return` expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable call
[INFO] [stdout]    --> src/kind.rs:116:9
[INFO] [stdout]     |
[INFO] [stdout] 116 |           Some(match hex_len {
[INFO] [stdout]     |  _________^^^^_-
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |         unreachable call
[INFO] [stdout] 117 | |             #[cfg(feature = "sha1")]
[INFO] [stdout] 118 | |             0..=SIZE_OF_SHA1_HEX_DIGEST => Kind::Sha1,
[INFO] [stdout] 119 | |             #[cfg(feature = "sha256")]
[INFO] [stdout] 120 | |             0..=SIZE_OF_SHA256_HEX_DIGEST => Kind::Sha256,
[INFO] [stdout] 121 | |             _ => return None,
[INFO] [stdout] 122 | |         })
[INFO] [stdout]     | |_________- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]    --> src/object_id.rs:281:9
[INFO] [stdout]     |
[INFO] [stdout] 275 | /         match self {
[INFO] [stdout] 276 | |             #[cfg(feature = "sha1")]
[INFO] [stdout] 277 | |             ObjectId::Sha1(_hash) => f.write_str("Sha1(")?,
[INFO] [stdout] 278 | |             #[cfg(feature = "sha256")]
[INFO] [stdout] 279 | |             ObjectId::Sha256(_) => f.write_str("Sha256(")?,
[INFO] [stdout] 280 | |         }
[INFO] [stdout]     | |_________- any code following this expression is unreachable
[INFO] [stdout] 281 | /         for b in self.as_bytes() {
[INFO] [stdout] 282 | |             write!(f, "{b:02x}")?;
[INFO] [stdout] 283 | |         }
[INFO] [stdout]     | |_________^ unreachable statement
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/kind.rs:180:27
[INFO] [stdout]     |
[INFO] [stdout] 180 |     pub const fn all() -> &'static [Self] {
[INFO] [stdout]     |                  ---      ^^^^^^^^^^^^^^^ expected `&[Kind]`, found `()`
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  implicitly returns `()` as its body has no tail or `return` expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&'static [Kind]`
[INFO] [stdout]                found unit type `()`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/oid.rs:64:19
[INFO] [stdout]    |
[INFO] [stdout] 64 |             match self.kind() {
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   unreachable expression
[INFO] [stdout]    |                   any code following this expression is unreachable
[INFO] [stdout]    |
[INFO] [stdout] note: this expression has type `Kind`, which is uninhabited
[INFO] [stdout]   --> src/oid.rs:64:19
[INFO] [stdout]    |
[INFO] [stdout] 64 |             match self.kind() {
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/oid.rs:185:15
[INFO] [stdout]     |
[INFO] [stdout] 185 |         match self.kind() {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               unreachable expression
[INFO] [stdout]     |               any code following this expression is unreachable
[INFO] [stdout]     |
[INFO] [stdout] note: this expression has type `Kind`, which is uninhabited
[INFO] [stdout]    --> src/oid.rs:185:15
[INFO] [stdout]     |
[INFO] [stdout] 185 |         match self.kind() {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/oid.rs:196:15
[INFO] [stdout]     |
[INFO] [stdout] 196 |         match self.kind() {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               unreachable expression
[INFO] [stdout]     |               any code following this expression is unreachable
[INFO] [stdout]     |
[INFO] [stdout] note: this expression has type `Kind`, which is uninhabited
[INFO] [stdout]    --> src/oid.rs:196:15
[INFO] [stdout]     |
[INFO] [stdout] 196 |         match self.kind() {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/oid.rs:207:15
[INFO] [stdout]     |
[INFO] [stdout] 207 |         match self.kind() {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               unreachable expression
[INFO] [stdout]     |               any code following this expression is unreachable
[INFO] [stdout]     |
[INFO] [stdout] note: this expression has type `Kind`, which is uninhabited
[INFO] [stdout]    --> src/oid.rs:207:15
[INFO] [stdout]     |
[INFO] [stdout] 207 |         match self.kind() {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&mut hasher::_impl::Hasher` is non-empty
[INFO] [stdout]   --> src/hasher.rs:49:19
[INFO] [stdout]    |
[INFO] [stdout] 49 |             match self {
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: `hasher::_impl::Hasher` defined here
[INFO] [stdout]   --> src/hasher.rs:17:14
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub enum Hasher {
[INFO] [stdout]    |              ^^^^^^
[INFO] [stdout]    = note: the matched value is of type `&mut hasher::_impl::Hasher`
[INFO] [stdout]    = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]    |
[INFO] [stdout] 49 ~             match self {
[INFO] [stdout] 50 +                 _ => todo!(),
[INFO] [stdout] 51 +             }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/io.rs:49:69
[INFO] [stdout]    |
[INFO] [stdout] 49 |         bytes_with_hasher(read, num_bytes_from_start, hasher(kind), progress, should_interrupt)
[INFO] [stdout]    |                                                       ------------  ^^^^^^^^ unreachable expression
[INFO] [stdout]    |                                                       |
[INFO] [stdout]    |                                                       any code following this expression is unreachable
[INFO] [stdout]    |
[INFO] [stdout] note: this expression has type `hasher::_impl::Hasher`, which is uninhabited
[INFO] [stdout]   --> src/io.rs:49:55
[INFO] [stdout]    |
[INFO] [stdout] 49 |         bytes_with_hasher(read, num_bytes_from_start, hasher(kind), progress, should_interrupt)
[INFO] [stdout]    |                                                       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable call
[INFO] [stdout]   --> src/kind.rs:15:9
[INFO] [stdout]    |
[INFO] [stdout] 15 |           Ok(match value {
[INFO] [stdout]    |  _________^^_-
[INFO] [stdout]    | |         |
[INFO] [stdout]    | |         unreachable call
[INFO] [stdout] 16 | |             #[cfg(feature = "sha1")]
[INFO] [stdout] 17 | |             1 => Kind::Sha1,
[INFO] [stdout] 18 | |             #[cfg(feature = "sha256")]
[INFO] [stdout] 19 | |             2 => Kind::Sha256,
[INFO] [stdout] 20 | |             unknown => return Err(unknown),
[INFO] [stdout] 21 | |         })
[INFO] [stdout]    | |_________- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `progress`
[INFO] [stdout]   --> src/io.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |         progress: &mut dyn gix_features::progress::Progress,
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_progress`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable call
[INFO] [stdout]   --> src/kind.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |           Ok(match s {
[INFO] [stdout]    |  _________^^_-
[INFO] [stdout]    | |         |
[INFO] [stdout]    | |         unreachable call
[INFO] [stdout] 30 | |             #[cfg(feature = "sha1")]
[INFO] [stdout] 31 | |             "sha1" | "SHA1" | "SHA-1" => Kind::Sha1,
[INFO] [stdout] 32 | |             #[cfg(feature = "sha256")]
[INFO] [stdout] 33 | |             "sha256" | "SHA256" | "SHA-256" => Kind::Sha256,
[INFO] [stdout] 34 | |             other => return Err(other.into()),
[INFO] [stdout] 35 | |         })
[INFO] [stdout]    | |_________- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `should_interrupt`
[INFO] [stdout]   --> src/io.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |         should_interrupt: &std::sync::atomic::AtomicBool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_should_interrupt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/kind.rs:53:32
[INFO] [stdout]    |
[INFO] [stdout] 53 |     pub const fn shortest() -> Self {
[INFO] [stdout]    |                  --------      ^^^^ expected `Kind`, found `()`
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  implicitly returns `()` as its body has no tail or `return` expression
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/io.rs:82:18
[INFO] [stdout]    |
[INFO] [stdout] 82 |         let id = hasher.try_finalize()?;
[INFO] [stdout]    |                  ---------------------^
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  unreachable expression
[INFO] [stdout]    |                  any code following this expression is unreachable
[INFO] [stdout]    |
[INFO] [stdout] note: this expression has type `Result<ObjectId, hasher::Error>`, which is uninhabited
[INFO] [stdout]   --> src/io.rs:82:18
[INFO] [stdout]    |
[INFO] [stdout] 82 |         let id = hasher.try_finalize()?;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable call
[INFO] [stdout]    --> src/kind.rs:116:9
[INFO] [stdout]     |
[INFO] [stdout] 116 |           Some(match hex_len {
[INFO] [stdout]     |  _________^^^^_-
[INFO] [stdout]     | |         |
[INFO] [stdout]     | |         unreachable call
[INFO] [stdout] 117 | |             #[cfg(feature = "sha1")]
[INFO] [stdout] 118 | |             0..=SIZE_OF_SHA1_HEX_DIGEST => Kind::Sha1,
[INFO] [stdout] 119 | |             #[cfg(feature = "sha256")]
[INFO] [stdout] 120 | |             0..=SIZE_OF_SHA256_HEX_DIGEST => Kind::Sha256,
[INFO] [stdout] 121 | |             _ => return None,
[INFO] [stdout] 122 | |         })
[INFO] [stdout]     | |_________- any code following this `match` expression is unreachable, as all arms diverge
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/kind.rs:180:27
[INFO] [stdout]     |
[INFO] [stdout] 180 |     pub const fn all() -> &'static [Self] {
[INFO] [stdout]     |                  ---      ^^^^^^^^^^^^^^^ expected `&[Kind]`, found `()`
[INFO] [stdout]     |                  |
[INFO] [stdout]     |                  implicitly returns `()` as its body has no tail or `return` expression
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&'static [Kind]`
[INFO] [stdout]                found unit type `()`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]   --> src/io.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let start = std::time::Instant::now();
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/io.rs:82:13
[INFO] [stdout]    |
[INFO] [stdout] 82 |         let id = hasher.try_finalize()?;
[INFO] [stdout]    |             ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inner`
[INFO] [stdout]    --> src/io.rs:115:20
[INFO] [stdout]     |
[INFO] [stdout] 115 |         pub fn new(inner: T, object_hash: crate::Kind) -> Self {
[INFO] [stdout]     |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_inner`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/oid.rs:64:19
[INFO] [stdout]    |
[INFO] [stdout] 64 |             match self.kind() {
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout]    |                   |
[INFO] [stdout]    |                   unreachable expression
[INFO] [stdout]    |                   any code following this expression is unreachable
[INFO] [stdout]    |
[INFO] [stdout] note: this expression has type `Kind`, which is uninhabited
[INFO] [stdout]   --> src/oid.rs:64:19
[INFO] [stdout]    |
[INFO] [stdout] 64 |             match self.kind() {
[INFO] [stdout]    |                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&ObjectId` is non-empty
[INFO] [stdout]    --> src/object_id.rs:117:15
[INFO] [stdout]     |
[INFO] [stdout] 117 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `ObjectId` defined here
[INFO] [stdout]    --> src/object_id.rs:19:10
[INFO] [stdout]     |
[INFO] [stdout]  19 | pub enum ObjectId {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&ObjectId`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 117 ~         match self {
[INFO] [stdout] 118 +             _ => todo!(),
[INFO] [stdout] 119 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&ObjectId` is non-empty
[INFO] [stdout]    --> src/object_id.rs:127:15
[INFO] [stdout]     |
[INFO] [stdout] 127 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `ObjectId` defined here
[INFO] [stdout]    --> src/object_id.rs:19:10
[INFO] [stdout]     |
[INFO] [stdout]  19 | pub enum ObjectId {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&ObjectId`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 127 ~         match self {
[INFO] [stdout] 128 +             _ => todo!(),
[INFO] [stdout] 129 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&mut ObjectId` is non-empty
[INFO] [stdout]    --> src/object_id.rs:137:15
[INFO] [stdout]     |
[INFO] [stdout] 137 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `ObjectId` defined here
[INFO] [stdout]    --> src/object_id.rs:19:10
[INFO] [stdout]     |
[INFO] [stdout]  19 | pub enum ObjectId {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&mut ObjectId`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 137 ~         match self {
[INFO] [stdout] 138 +             _ => todo!(),
[INFO] [stdout] 139 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/oid.rs:185:15
[INFO] [stdout]     |
[INFO] [stdout] 185 |         match self.kind() {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               unreachable expression
[INFO] [stdout]     |               any code following this expression is unreachable
[INFO] [stdout]     |
[INFO] [stdout] note: this expression has type `Kind`, which is uninhabited
[INFO] [stdout]    --> src/oid.rs:185:15
[INFO] [stdout]     |
[INFO] [stdout] 185 |         match self.kind() {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&ObjectId` is non-empty
[INFO] [stdout]    --> src/object_id.rs:183:15
[INFO] [stdout]     |
[INFO] [stdout] 183 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `ObjectId` defined here
[INFO] [stdout]    --> src/object_id.rs:19:10
[INFO] [stdout]     |
[INFO] [stdout]  19 | pub enum ObjectId {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&ObjectId`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 183 ~         match self {
[INFO] [stdout] 184 +             _ => todo!(),
[INFO] [stdout] 185 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/object_id.rs:194:18
[INFO] [stdout]     |
[INFO] [stdout] 194 |         self == &Self::empty_blob(self.kind())
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^-----------^
[INFO] [stdout]     |                  |                |
[INFO] [stdout]     |                  |                any code following this expression is unreachable
[INFO] [stdout]     |                  unreachable expression
[INFO] [stdout]     |
[INFO] [stdout] note: this expression has type `Kind`, which is uninhabited
[INFO] [stdout]    --> src/object_id.rs:194:35
[INFO] [stdout]     |
[INFO] [stdout] 194 |         self == &Self::empty_blob(self.kind())
[INFO] [stdout]     |                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/oid.rs:196:15
[INFO] [stdout]     |
[INFO] [stdout] 196 |         match self.kind() {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               unreachable expression
[INFO] [stdout]     |               any code following this expression is unreachable
[INFO] [stdout]     |
[INFO] [stdout] note: this expression has type `Kind`, which is uninhabited
[INFO] [stdout]    --> src/oid.rs:196:15
[INFO] [stdout]     |
[INFO] [stdout] 196 |         match self.kind() {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/object_id.rs:194:17
[INFO] [stdout]     |
[INFO] [stdout] 194 |         self == &Self::empty_blob(self.kind())
[INFO] [stdout]     |                 ^-----------------------------
[INFO] [stdout]     |                 ||
[INFO] [stdout]     |                 |any code following this expression is unreachable
[INFO] [stdout]     |                 unreachable expression
[INFO] [stdout]     |
[INFO] [stdout] note: this expression has type `ObjectId`, which is uninhabited
[INFO] [stdout]    --> src/object_id.rs:194:18
[INFO] [stdout]     |
[INFO] [stdout] 194 |         self == &Self::empty_blob(self.kind())
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/object_id.rs:200:18
[INFO] [stdout]     |
[INFO] [stdout] 200 |         self == &Self::empty_tree(self.kind())
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^-----------^
[INFO] [stdout]     |                  |                |
[INFO] [stdout]     |                  |                any code following this expression is unreachable
[INFO] [stdout]     |                  unreachable expression
[INFO] [stdout]     |
[INFO] [stdout] note: this expression has type `Kind`, which is uninhabited
[INFO] [stdout]    --> src/object_id.rs:200:35
[INFO] [stdout]     |
[INFO] [stdout] 200 |         self == &Self::empty_tree(self.kind())
[INFO] [stdout]     |                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/oid.rs:207:15
[INFO] [stdout]     |
[INFO] [stdout] 207 |         match self.kind() {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               unreachable expression
[INFO] [stdout]     |               any code following this expression is unreachable
[INFO] [stdout]     |
[INFO] [stdout] note: this expression has type `Kind`, which is uninhabited
[INFO] [stdout]    --> src/oid.rs:207:15
[INFO] [stdout]     |
[INFO] [stdout] 207 |         match self.kind() {
[INFO] [stdout]     |               ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/object_id.rs:200:17
[INFO] [stdout]     |
[INFO] [stdout] 200 |         self == &Self::empty_tree(self.kind())
[INFO] [stdout]     |                 ^-----------------------------
[INFO] [stdout]     |                 ||
[INFO] [stdout]     |                 |any code following this expression is unreachable
[INFO] [stdout]     |                 unreachable expression
[INFO] [stdout]     |
[INFO] [stdout] note: this expression has type `ObjectId`, which is uninhabited
[INFO] [stdout]    --> src/object_id.rs:200:18
[INFO] [stdout]     |
[INFO] [stdout] 200 |         self == &Self::empty_tree(self.kind())
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&ObjectId` is non-empty
[INFO] [stdout]    --> src/object_id.rs:275:15
[INFO] [stdout]     |
[INFO] [stdout] 275 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `ObjectId` defined here
[INFO] [stdout]    --> src/object_id.rs:19:10
[INFO] [stdout]     |
[INFO] [stdout]  19 | pub enum ObjectId {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&ObjectId`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 275 ~         match self {
[INFO] [stdout] 276 +             _ => todo!(),
[INFO] [stdout] 277 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&mut hasher::_impl::Hasher` is non-empty
[INFO] [stdout]   --> src/hasher.rs:49:19
[INFO] [stdout]    |
[INFO] [stdout] 49 |             match self {
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: `hasher::_impl::Hasher` defined here
[INFO] [stdout]   --> src/hasher.rs:17:14
[INFO] [stdout]    |
[INFO] [stdout] 17 |     pub enum Hasher {
[INFO] [stdout]    |              ^^^^^^
[INFO] [stdout]    = note: the matched value is of type `&mut hasher::_impl::Hasher`
[INFO] [stdout]    = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]    |
[INFO] [stdout] 49 ~             match self {
[INFO] [stdout] 50 +                 _ => todo!(),
[INFO] [stdout] 51 +             }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/io.rs:49:69
[INFO] [stdout]    |
[INFO] [stdout] 49 |         bytes_with_hasher(read, num_bytes_from_start, hasher(kind), progress, should_interrupt)
[INFO] [stdout]    |                                                       ------------  ^^^^^^^^ unreachable expression
[INFO] [stdout]    |                                                       |
[INFO] [stdout]    |                                                       any code following this expression is unreachable
[INFO] [stdout]    |
[INFO] [stdout] note: this expression has type `hasher::_impl::Hasher`, which is uninhabited
[INFO] [stdout]   --> src/io.rs:49:55
[INFO] [stdout]    |
[INFO] [stdout] 49 |         bytes_with_hasher(read, num_bytes_from_start, hasher(kind), progress, should_interrupt)
[INFO] [stdout]    |                                                       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `progress`
[INFO] [stdout]   --> src/io.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |         progress: &mut dyn gix_features::progress::Progress,
[INFO] [stdout]    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_progress`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `should_interrupt`
[INFO] [stdout]   --> src/io.rs:47:9
[INFO] [stdout]    |
[INFO] [stdout] 47 |         should_interrupt: &std::sync::atomic::AtomicBool,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_should_interrupt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/prefix.rs:29:93
[INFO] [stdout]    |
[INFO] [stdout] 29 |         #[error("An id cannot be larger than {} chars in hex, but {hex_len} was requested", crate::Kind::longest().len_in_hex())]
[INFO] [stdout]    |                                                                                             ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                                                                             |
[INFO] [stdout]    |                                                                                             unreachable expression
[INFO] [stdout]    |                                                                                             any code following this expression is unreachable
[INFO] [stdout]    |
[INFO] [stdout] note: this expression has type `Kind`, which is uninhabited
[INFO] [stdout]   --> src/prefix.rs:29:93
[INFO] [stdout]    |
[INFO] [stdout] 29 |         #[error("An id cannot be larger than {} chars in hex, but {hex_len} was requested", crate::Kind::longest().len_in_hex())]
[INFO] [stdout]    |                                                                                             ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/io.rs:82:18
[INFO] [stdout]    |
[INFO] [stdout] 82 |         let id = hasher.try_finalize()?;
[INFO] [stdout]    |                  ---------------------^
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  unreachable expression
[INFO] [stdout]    |                  any code following this expression is unreachable
[INFO] [stdout]    |
[INFO] [stdout] note: this expression has type `Result<ObjectId, hasher::Error>`, which is uninhabited
[INFO] [stdout]   --> src/io.rs:82:18
[INFO] [stdout]    |
[INFO] [stdout] 82 |         let id = hasher.try_finalize()?;
[INFO] [stdout]    |                  ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/prefix.rs:45:22
[INFO] [stdout]    |
[INFO] [stdout] 45 |         if hex_len > id.kind().len_in_hex() {
[INFO] [stdout]    |                      ^^^^^^^^^
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      unreachable expression
[INFO] [stdout]    |                      any code following this expression is unreachable
[INFO] [stdout]    |
[INFO] [stdout] note: this expression has type `Kind`, which is uninhabited
[INFO] [stdout]   --> src/prefix.rs:45:22
[INFO] [stdout]    |
[INFO] [stdout] 45 |         if hex_len > id.kind().len_in_hex() {
[INFO] [stdout]    |                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/prefix.rs:48:17
[INFO] [stdout]    |
[INFO] [stdout] 47 |                 object_kind: id.kind(),
[INFO] [stdout]    |                              --------- any code following this expression is unreachable
[INFO] [stdout] 48 |                 hex_len,
[INFO] [stdout]    |                 ^^^^^^^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout] note: this expression has type `Kind`, which is uninhabited
[INFO] [stdout]   --> src/prefix.rs:47:30
[INFO] [stdout]    |
[INFO] [stdout] 47 |                 object_kind: id.kind(),
[INFO] [stdout]    |                              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `start`
[INFO] [stdout]   --> src/io.rs:60:13
[INFO] [stdout]    |
[INFO] [stdout] 60 |         let start = std::time::Instant::now();
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_start`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/prefix.rs:53:30
[INFO] [stdout]    |
[INFO] [stdout] 53 |             let mut prefix = ObjectId::null(id.kind());
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^---------^
[INFO] [stdout]    |                              |              |
[INFO] [stdout]    |                              |              any code following this expression is unreachable
[INFO] [stdout]    |                              unreachable expression
[INFO] [stdout]    |
[INFO] [stdout] note: this expression has type `Kind`, which is uninhabited
[INFO] [stdout]   --> src/prefix.rs:53:45
[INFO] [stdout]    |
[INFO] [stdout] 53 |             let mut prefix = ObjectId::null(id.kind());
[INFO] [stdout]    |                                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable definition
[INFO] [stdout]   --> src/prefix.rs:53:17
[INFO] [stdout]    |
[INFO] [stdout] 53 |             let mut prefix = ObjectId::null(id.kind());
[INFO] [stdout]    |                 ^^^^^^^^^^   ------------------------- any code following this expression is unreachable
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 unreachable definition
[INFO] [stdout]    |
[INFO] [stdout] note: this expression has type `ObjectId`, which is uninhabited
[INFO] [stdout]   --> src/prefix.rs:53:30
[INFO] [stdout]    |
[INFO] [stdout] 53 |             let mut prefix = ObjectId::null(id.kind());
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `id`
[INFO] [stdout]   --> src/io.rs:82:13
[INFO] [stdout]    |
[INFO] [stdout] 82 |         let id = hasher.try_finalize()?;
[INFO] [stdout]    |             ^^ help: if this is intentional, prefix it with an underscore: `_id`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `inner`
[INFO] [stdout]    --> src/io.rs:115:20
[INFO] [stdout]     |
[INFO] [stdout] 115 |         pub fn new(inner: T, object_hash: crate::Kind) -> Self {
[INFO] [stdout]     |                    ^^^^^ help: if this is intentional, prefix it with an underscore: `_inner`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/verify.rs:23:27
[INFO] [stdout]    |
[INFO] [stdout] 22 |                 actual: self.to_owned(),
[INFO] [stdout]    |                         --------------- any code following this expression is unreachable
[INFO] [stdout] 23 |                 expected: expected.to_owned(),
[INFO] [stdout]    |                           ^^^^^^^^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout] note: this expression has type `ObjectId`, which is uninhabited
[INFO] [stdout]   --> src/verify.rs:22:25
[INFO] [stdout]    |
[INFO] [stdout] 22 |                 actual: self.to_owned(),
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&ObjectId` is non-empty
[INFO] [stdout]    --> src/object_id.rs:117:15
[INFO] [stdout]     |
[INFO] [stdout] 117 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `ObjectId` defined here
[INFO] [stdout]    --> src/object_id.rs:19:10
[INFO] [stdout]     |
[INFO] [stdout]  19 | pub enum ObjectId {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&ObjectId`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 117 ~         match self {
[INFO] [stdout] 118 +             _ => todo!(),
[INFO] [stdout] 119 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/verify.rs:21:17
[INFO] [stdout]    |
[INFO] [stdout] 21 |               Err(Error {
[INFO] [stdout]    |  _________________^
[INFO] [stdout] 22 | |                 actual: self.to_owned(),
[INFO] [stdout] 23 | |                 expected: expected.to_owned(),
[INFO] [stdout]    | |                           ------------------- any code following this expression is unreachable
[INFO] [stdout] 24 | |             })
[INFO] [stdout]    | |_____________^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout] note: this expression has type `ObjectId`, which is uninhabited
[INFO] [stdout]   --> src/verify.rs:23:27
[INFO] [stdout]    |
[INFO] [stdout] 23 |                 expected: expected.to_owned(),
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&ObjectId` is non-empty
[INFO] [stdout]    --> src/object_id.rs:127:15
[INFO] [stdout]     |
[INFO] [stdout] 127 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `ObjectId` defined here
[INFO] [stdout]    --> src/object_id.rs:19:10
[INFO] [stdout]     |
[INFO] [stdout]  19 | pub enum ObjectId {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&ObjectId`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 127 ~         match self {
[INFO] [stdout] 128 +             _ => todo!(),
[INFO] [stdout] 129 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&mut ObjectId` is non-empty
[INFO] [stdout]    --> src/object_id.rs:137:15
[INFO] [stdout]     |
[INFO] [stdout] 137 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `ObjectId` defined here
[INFO] [stdout]    --> src/object_id.rs:19:10
[INFO] [stdout]     |
[INFO] [stdout]  19 | pub enum ObjectId {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&mut ObjectId`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 137 ~         match self {
[INFO] [stdout] 138 +             _ => todo!(),
[INFO] [stdout] 139 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&ObjectId` is non-empty
[INFO] [stdout]    --> src/object_id.rs:183:15
[INFO] [stdout]     |
[INFO] [stdout] 183 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `ObjectId` defined here
[INFO] [stdout]    --> src/object_id.rs:19:10
[INFO] [stdout]     |
[INFO] [stdout]  19 | pub enum ObjectId {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&ObjectId`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 183 ~         match self {
[INFO] [stdout] 184 +             _ => todo!(),
[INFO] [stdout] 185 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/object_id.rs:194:18
[INFO] [stdout]     |
[INFO] [stdout] 194 |         self == &Self::empty_blob(self.kind())
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^-----------^
[INFO] [stdout]     |                  |                |
[INFO] [stdout]     |                  |                any code following this expression is unreachable
[INFO] [stdout]     |                  unreachable expression
[INFO] [stdout]     |
[INFO] [stdout] note: this expression has type `Kind`, which is uninhabited
[INFO] [stdout]    --> src/object_id.rs:194:35
[INFO] [stdout]     |
[INFO] [stdout] 194 |         self == &Self::empty_blob(self.kind())
[INFO] [stdout]     |                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/object_id.rs:194:17
[INFO] [stdout]     |
[INFO] [stdout] 194 |         self == &Self::empty_blob(self.kind())
[INFO] [stdout]     |                 ^-----------------------------
[INFO] [stdout]     |                 ||
[INFO] [stdout]     |                 |any code following this expression is unreachable
[INFO] [stdout]     |                 unreachable expression
[INFO] [stdout]     |
[INFO] [stdout] note: this expression has type `ObjectId`, which is uninhabited
[INFO] [stdout]    --> src/object_id.rs:194:18
[INFO] [stdout]     |
[INFO] [stdout] 194 |         self == &Self::empty_blob(self.kind())
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Kind` is non-empty
[INFO] [stdout]   --> src/kind.rs:41:15
[INFO] [stdout]    |
[INFO] [stdout] 41 |         match self {
[INFO] [stdout]    |               ^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: `Kind` defined here
[INFO] [stdout]   --> src/lib.rs:96:10
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub enum Kind {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout]    = note: the matched value is of type `&Kind`
[INFO] [stdout]    = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]    |
[INFO] [stdout] 41 ~         match self {
[INFO] [stdout] 42 +             _ => todo!(),
[INFO] [stdout] 43 +         }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/object_id.rs:200:18
[INFO] [stdout]     |
[INFO] [stdout] 200 |         self == &Self::empty_tree(self.kind())
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^-----------^
[INFO] [stdout]     |                  |                |
[INFO] [stdout]     |                  |                any code following this expression is unreachable
[INFO] [stdout]     |                  unreachable expression
[INFO] [stdout]     |
[INFO] [stdout] note: this expression has type `Kind`, which is uninhabited
[INFO] [stdout]    --> src/object_id.rs:200:35
[INFO] [stdout]     |
[INFO] [stdout] 200 |         self == &Self::empty_tree(self.kind())
[INFO] [stdout]     |                                   ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]    --> src/object_id.rs:200:17
[INFO] [stdout]     |
[INFO] [stdout] 200 |         self == &Self::empty_tree(self.kind())
[INFO] [stdout]     |                 ^-----------------------------
[INFO] [stdout]     |                 ||
[INFO] [stdout]     |                 |any code following this expression is unreachable
[INFO] [stdout]     |                 unreachable expression
[INFO] [stdout]     |
[INFO] [stdout] note: this expression has type `ObjectId`, which is uninhabited
[INFO] [stdout]    --> src/object_id.rs:200:18
[INFO] [stdout]     |
[INFO] [stdout] 200 |         self == &Self::empty_tree(self.kind())
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&ObjectId` is non-empty
[INFO] [stdout]    --> src/object_id.rs:275:15
[INFO] [stdout]     |
[INFO] [stdout] 275 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `ObjectId` defined here
[INFO] [stdout]    --> src/object_id.rs:19:10
[INFO] [stdout]     |
[INFO] [stdout]  19 | pub enum ObjectId {
[INFO] [stdout]     |          ^^^^^^^^
[INFO] [stdout]     = note: the matched value is of type `&ObjectId`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 275 ~         match self {
[INFO] [stdout] 276 +             _ => todo!(),
[INFO] [stdout] 277 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Kind` is non-empty
[INFO] [stdout]   --> src/kind.rs:92:15
[INFO] [stdout]    |
[INFO] [stdout] 92 |         match self {
[INFO] [stdout]    |               ^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: `Kind` defined here
[INFO] [stdout]   --> src/lib.rs:96:10
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub enum Kind {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout]    = note: the matched value is of type `&Kind`
[INFO] [stdout]    = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]    |
[INFO] [stdout] 92 ~         match self {
[INFO] [stdout] 93 +             _ => todo!(),
[INFO] [stdout] 94 +         }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Kind` is non-empty
[INFO] [stdout]    --> src/kind.rs:103:15
[INFO] [stdout]     |
[INFO] [stdout] 103 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Kind` defined here
[INFO] [stdout]    --> src/lib.rs:96:10
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum Kind {
[INFO] [stdout]     |          ^^^^
[INFO] [stdout]     = note: the matched value is of type `&Kind`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 103 ~         match self {
[INFO] [stdout] 104 +             _ => todo!(),
[INFO] [stdout] 105 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Kind` is non-empty
[INFO] [stdout]    --> src/kind.rs:147:15
[INFO] [stdout]     |
[INFO] [stdout] 147 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Kind` defined here
[INFO] [stdout]    --> src/lib.rs:96:10
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum Kind {
[INFO] [stdout]     |          ^^^^
[INFO] [stdout]     = note: the matched value is of type `&Kind`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 147 ~         match self {
[INFO] [stdout] 148 +             _ => todo!(),
[INFO] [stdout] 149 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Kind` is non-empty
[INFO] [stdout]    --> src/kind.rs:158:15
[INFO] [stdout]     |
[INFO] [stdout] 158 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Kind` defined here
[INFO] [stdout]    --> src/lib.rs:96:10
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum Kind {
[INFO] [stdout]     |          ^^^^
[INFO] [stdout]     = note: the matched value is of type `&Kind`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 158 ~         match self {
[INFO] [stdout] 159 +             _ => todo!(),
[INFO] [stdout] 160 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/prefix.rs:29:93
[INFO] [stdout]    |
[INFO] [stdout] 29 |         #[error("An id cannot be larger than {} chars in hex, but {hex_len} was requested", crate::Kind::longest().len_in_hex())]
[INFO] [stdout]    |                                                                                             ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                                                                             |
[INFO] [stdout]    |                                                                                             unreachable expression
[INFO] [stdout]    |                                                                                             any code following this expression is unreachable
[INFO] [stdout]    |
[INFO] [stdout] note: this expression has type `Kind`, which is uninhabited
[INFO] [stdout]   --> src/prefix.rs:29:93
[INFO] [stdout]    |
[INFO] [stdout] 29 |         #[error("An id cannot be larger than {} chars in hex, but {hex_len} was requested", crate::Kind::longest().len_in_hex())]
[INFO] [stdout]    |                                                                                             ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/prefix.rs:45:22
[INFO] [stdout]    |
[INFO] [stdout] 45 |         if hex_len > id.kind().len_in_hex() {
[INFO] [stdout]    |                      ^^^^^^^^^
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      unreachable expression
[INFO] [stdout]    |                      any code following this expression is unreachable
[INFO] [stdout]    |
[INFO] [stdout] note: this expression has type `Kind`, which is uninhabited
[INFO] [stdout]   --> src/prefix.rs:45:22
[INFO] [stdout]    |
[INFO] [stdout] 45 |         if hex_len > id.kind().len_in_hex() {
[INFO] [stdout]    |                      ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/prefix.rs:48:17
[INFO] [stdout]    |
[INFO] [stdout] 47 |                 object_kind: id.kind(),
[INFO] [stdout]    |                              --------- any code following this expression is unreachable
[INFO] [stdout] 48 |                 hex_len,
[INFO] [stdout]    |                 ^^^^^^^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout] note: this expression has type `Kind`, which is uninhabited
[INFO] [stdout]   --> src/prefix.rs:47:30
[INFO] [stdout]    |
[INFO] [stdout] 47 |                 object_kind: id.kind(),
[INFO] [stdout]    |                              ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/prefix.rs:53:30
[INFO] [stdout]    |
[INFO] [stdout] 53 |             let mut prefix = ObjectId::null(id.kind());
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^---------^
[INFO] [stdout]    |                              |              |
[INFO] [stdout]    |                              |              any code following this expression is unreachable
[INFO] [stdout]    |                              unreachable expression
[INFO] [stdout]    |
[INFO] [stdout] note: this expression has type `Kind`, which is uninhabited
[INFO] [stdout]   --> src/prefix.rs:53:45
[INFO] [stdout]    |
[INFO] [stdout] 53 |             let mut prefix = ObjectId::null(id.kind());
[INFO] [stdout]    |                                             ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable definition
[INFO] [stdout]   --> src/prefix.rs:53:17
[INFO] [stdout]    |
[INFO] [stdout] 53 |             let mut prefix = ObjectId::null(id.kind());
[INFO] [stdout]    |                 ^^^^^^^^^^   ------------------------- any code following this expression is unreachable
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 unreachable definition
[INFO] [stdout]    |
[INFO] [stdout] note: this expression has type `ObjectId`, which is uninhabited
[INFO] [stdout]   --> src/prefix.rs:53:30
[INFO] [stdout]    |
[INFO] [stdout] 53 |             let mut prefix = ObjectId::null(id.kind());
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0004, E0308, E0665.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0004`.
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/verify.rs:23:27
[INFO] [stdout]    |
[INFO] [stdout] 22 |                 actual: self.to_owned(),
[INFO] [stdout]    |                         --------------- any code following this expression is unreachable
[INFO] [stdout] 23 |                 expected: expected.to_owned(),
[INFO] [stdout]    |                           ^^^^^^^^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout] note: this expression has type `ObjectId`, which is uninhabited
[INFO] [stdout]   --> src/verify.rs:22:25
[INFO] [stdout]    |
[INFO] [stdout] 22 |                 actual: self.to_owned(),
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `gix-hash` (lib) due to 16 previous errors; 27 warnings emitted
[INFO] [stdout] warning: unreachable expression
[INFO] [stdout]   --> src/verify.rs:21:17
[INFO] [stdout]    |
[INFO] [stdout] 21 |               Err(Error {
[INFO] [stdout]    |  _________________^
[INFO] [stdout] 22 | |                 actual: self.to_owned(),
[INFO] [stdout] 23 | |                 expected: expected.to_owned(),
[INFO] [stdout]    | |                           ------------------- any code following this expression is unreachable
[INFO] [stdout] 24 | |             })
[INFO] [stdout]    | |_____________^ unreachable expression
[INFO] [stdout]    |
[INFO] [stdout] note: this expression has type `ObjectId`, which is uninhabited
[INFO] [stdout]   --> src/verify.rs:23:27
[INFO] [stdout]    |
[INFO] [stdout] 23 |                 expected: expected.to_owned(),
[INFO] [stdout]    |                           ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Kind` is non-empty
[INFO] [stdout]   --> src/kind.rs:41:15
[INFO] [stdout]    |
[INFO] [stdout] 41 |         match self {
[INFO] [stdout]    |               ^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: `Kind` defined here
[INFO] [stdout]   --> src/lib.rs:96:10
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub enum Kind {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout]    = note: the matched value is of type `&Kind`
[INFO] [stdout]    = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]    |
[INFO] [stdout] 41 ~         match self {
[INFO] [stdout] 42 +             _ => todo!(),
[INFO] [stdout] 43 +         }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Kind` is non-empty
[INFO] [stdout]   --> src/kind.rs:92:15
[INFO] [stdout]    |
[INFO] [stdout] 92 |         match self {
[INFO] [stdout]    |               ^^^^
[INFO] [stdout]    |
[INFO] [stdout] note: `Kind` defined here
[INFO] [stdout]   --> src/lib.rs:96:10
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub enum Kind {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout]    = note: the matched value is of type `&Kind`
[INFO] [stdout]    = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]    |
[INFO] [stdout] 92 ~         match self {
[INFO] [stdout] 93 +             _ => todo!(),
[INFO] [stdout] 94 +         }
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Kind` is non-empty
[INFO] [stdout]    --> src/kind.rs:103:15
[INFO] [stdout]     |
[INFO] [stdout] 103 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Kind` defined here
[INFO] [stdout]    --> src/lib.rs:96:10
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum Kind {
[INFO] [stdout]     |          ^^^^
[INFO] [stdout]     = note: the matched value is of type `&Kind`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 103 ~         match self {
[INFO] [stdout] 104 +             _ => todo!(),
[INFO] [stdout] 105 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Kind` is non-empty
[INFO] [stdout]    --> src/kind.rs:147:15
[INFO] [stdout]     |
[INFO] [stdout] 147 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Kind` defined here
[INFO] [stdout]    --> src/lib.rs:96:10
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum Kind {
[INFO] [stdout]     |          ^^^^
[INFO] [stdout]     = note: the matched value is of type `&Kind`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 147 ~         match self {
[INFO] [stdout] 148 +             _ => todo!(),
[INFO] [stdout] 149 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0004]: non-exhaustive patterns: type `&Kind` is non-empty
[INFO] [stdout]    --> src/kind.rs:158:15
[INFO] [stdout]     |
[INFO] [stdout] 158 |         match self {
[INFO] [stdout]     |               ^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: `Kind` defined here
[INFO] [stdout]    --> src/lib.rs:96:10
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum Kind {
[INFO] [stdout]     |          ^^^^
[INFO] [stdout]     = note: the matched value is of type `&Kind`
[INFO] [stdout]     = note: references are always considered inhabited
[INFO] [stdout] help: ensure that all possible cases are being handled by adding a match arm with a wildcard pattern as shown
[INFO] [stdout]     |
[INFO] [stdout] 158 ~         match self {
[INFO] [stdout] 159 +             _ => todo!(),
[INFO] [stdout] 160 +         }
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0004, E0308, E0665.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0004`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `gix-hash` (lib test) due to 16 previous errors; 27 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "1e364c1e9b6b3f97e43dd99be70e64621674169a78fea2984ddad3c1e944e5e2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "1e364c1e9b6b3f97e43dd99be70e64621674169a78fea2984ddad3c1e944e5e2", kill_on_drop: false }`
[INFO] [stdout] 1e364c1e9b6b3f97e43dd99be70e64621674169a78fea2984ddad3c1e944e5e2
